package com.yidu.t299.service.ssk.impl;
import com.yidu.t299.dao.ssk.StuReturnMoneyMapper;
import com.yidu.t299.domain.ssk.School;
import com.yidu.t299.domain.ssk.StuReturnMoney;
import com.yidu.t299.service.ssk.StuReturnMoneyBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;

/**
 * @author 粟术康
 * @version 1.0
 * @description
 * @date:2023/3/17 14:36
 */
@Service
@Transactional
public class StuReturnMoneyImpl implements StuReturnMoneyBiz {
    @Autowired
    private StuReturnMoneyMapper stuReturnMoneyMapper;

    /**
     * 根据退费编号删除该退费信息
     *
     * @param returnMoneyId 退费编号
     * @return 影响的行数(返回1则为成功)
     */
    @Override
    public int deleteByPrimaryKey(Integer returnMoneyId) {
        return stuReturnMoneyMapper.deleteByPrimaryKey(returnMoneyId);
    }

    /**
     * 添加退费信息
     *
     * @param stuReturnMoney 退费对象
     * @return 影响的行数(返回1则为成功)
     */
    @Override
    public int insert(StuReturnMoney stuReturnMoney) {
        return stuReturnMoneyMapper.insert(stuReturnMoney);
    }

    /**
     * 根据退费编号查询指定的信息
     *
     * @param returnMoneyId 退费编号
     * @return 退费对象
     */
    @Override
    public StuReturnMoney selectByPrimaryKey(Integer returnMoneyId) {
        return stuReturnMoneyMapper.selectByPrimaryKey(returnMoneyId);
    }

    /**
     * 按条件分页查询退费数据集合
     *
     * @param rows      每页的行数
     * @param page      页码
     * @param condition 条件参数
     * @return 退费对象集合
     */
    @Override
    public List<StuReturnMoney> selectByPage(int rows, int page, String condition) {
        return stuReturnMoneyMapper.selectByPage(rows, page, condition);
    }

    /**
     * 按条件查询stuReturnMoney表中数据行数
     *
     * @param condition 条件参数
     * @return 数据行数
     */
    @Override
    public int selectCount(String condition) {
        return stuReturnMoneyMapper.selectCount(condition);
    }

    /**
     * 根据退费信息修改其数据
     *
     * @param stuReturnMoney 退费对象
     * @return 影响的行数(返回1则为成功)
     */
    @Override
    public int updateByPrimaryKey(StuReturnMoney stuReturnMoney) {
        return stuReturnMoneyMapper.updateByPrimaryKey(stuReturnMoney);
    }

    /**
     * 根据实体类各属性值生成条件字符串
     *
     * @param stuReturnMoney 退费对象
     * @return 条件字符串
     */
    @Override
    public String getCondition(StuReturnMoney stuReturnMoney) {
        // 定义条件字符串变量，初始值为空格字符串
        String condition = " ";
        // 如果账户对象为空，则直接返回空条件字符串
        if (stuReturnMoney == null) {
            return condition;
        }
        if(stuReturnMoney.getStudentName()!=null && stuReturnMoney.getStudentName().trim().length()!=0){
            condition += " and s.student_name like '%"+stuReturnMoney.getStudentName()+"%'";
        }
        if(stuReturnMoney.getRecordName()!=null && stuReturnMoney.getRecordName().trim().length()!=0){
            condition += " and r.record_name like '%"+stuReturnMoney.getRecordName()+"%'";
        }
        if(stuReturnMoney.getClassName()!=null && stuReturnMoney.getClassName().trim().length()!=0){
            condition += " and c.class_name like '%"+stuReturnMoney.getClassName()+"%'";
        }
        if(stuReturnMoney.getSchoolName()!=null && stuReturnMoney.getSchoolName().trim().length()!=0){
            condition += " and sh.school_name like '%"+stuReturnMoney.getSchoolName()+"%'";
        }
        return condition;
    }

    /**
     * 针对学员表(student_manage)进行操作
     * 根据学员名称查找其编号
     *
     * @param studentName 学生姓名
     * @return 影响的行数(> 1 : 成功)
     */
    @Override
    public int selectByStudentName(String studentName) {
        return stuReturnMoneyMapper.selectByStudentName(studentName);
    }

    /**
     * 针对账户表(account)进行操作
     * 根据优惠项目查找其编号
     *
     * @param accountType 优惠项目
     * @return 影响的行数(> 1 : 成功)
     */
    @Override
    public int selectByAccountType(String accountType) {
        return stuReturnMoneyMapper.selectByAccountType(accountType);
    }

    /**
     * 针对学校表(school)进行操作
     * 根据学校名称查找其编号
     *
     * @param schoolName 优惠项目
     * @return 影响的行数(> 1 : 成功)
     */
    @Override
    public int selectBySchoolName(String schoolName) {
        return stuReturnMoneyMapper.selectBySchoolName(schoolName);
    }

    /**
     * 针对员工表(record)进行操作
     * 根据员工名称查找其编号
     *
     * @param recordName 员工名称
     * @return 影响的行数(> 1 : 成功)
     */
    @Override
    public int selectByRecordName(String recordName) {
        return stuReturnMoneyMapper.selectByRecordName(recordName);
    }

    /**
     * 针对班级表(class)进行操作
     * 根据班级名称查找其编号
     *
     * @param className 班级名称
     * @return 影响的行数(> 1 : 成功)
     */
    @Override
    public int selectByClassName(String className) {
        return stuReturnMoneyMapper.selectByClassName(className);
    }

    /**
     * 得到所有校区信息
     *
     * @return 校区对象集合
     */
    @Override
    public List<School> selectAllGetSchool() {
        return stuReturnMoneyMapper.selectAllGetSchool();
    }
}
